package com.lai.hospital.service;

import cn.hutool.json.JSONObject;
import com.aliyun.ocr_api20210707.models.RecognizeIdcardResponseBody;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lai.hospital.dto.UserPatientDTO;
import com.lai.hospital.entity.Patient;
import com.lai.hospital.vo.ConditionVO;
import com.lai.hospital.vo.PageResult;
import com.lai.hospital.vo.PatientBaseInfoVO;
import com.lai.hospital.vo.UserPatientVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.List;

/**
 * @author : lai
 * @version V1.0
 * @Project: hospital-springboot
 * @Package com.lai.hospital.service
 * @Description: 患者服务
 * @date Date : 2022年11月27日 23:43
 */
public interface PatientService extends IService<Patient> {
    /**
     *  分页获取患者列表
     * @param conditionVO 查询条件
     * @return
     */
    PageResult<Patient> listPatient(ConditionVO conditionVO);

    /**
     * 删除患者信息
     * @param id 患者id
     */
    void deletePatient(Integer id);

    Patient getPatientById(Integer id);

    /**
     * 保存或修改就诊人信息
     * @param patientBaseInfoVO
     */
    void saveOrUpdatePatient(PatientBaseInfoVO patientBaseInfoVO);

    /**
     * 根据用户id获取就诊人
     * * @param userId 用户id
     * @return
     */
    List<UserPatientDTO> listPatientByUserId(Integer userId);

    /**
     * 删除用户就诊人
     * @param userPatientId
     */
    void deleteUserPatient(Integer userPatientId);

    /**
     * 修改用户就诊人关系
     * @param userPatientVO
     */
    void updateUserPatientRelation(UserPatientVO userPatientVO);

    /**
     * 获取用户的默认就诊人信息
     * @return默认就诊人信息
     */
    Patient getUserDefaultPatient();

    RecognizeIdcardResponseBody OCR(MultipartFile file) throws Exception;

    /**
     *  分页获取我的患者列表
     * @param conditionVO 查询条件
     * @return
     */
    PageResult<Patient> listMyPatient(ConditionVO conditionVO);
}
